/*
 * EnvioMovimientoDAO.java
 *
 * Created on 8 de marzo de 2007, 04:09 PM
 *
 * To change this template, choose Tools | Options and locate the template under
 * the Source Creation and Management node. Right-click the template and choose
 * Open. You can then make changes to the template in the Source Editor.
 */

package com.src.computec.radar.services.utilities.dao;

import com.src.computec.radar.base.dao.GenericDAO;
import com.src.computec.radar.base.dao.exception.DAOException;
import com.src.computec.radar.services.base.constantes.ConstantesGenerales;
import com.src.computec.radar.services.utilities.dto.EnvioDto;
import com.src.computec.radar.services.utilities.dto.EnvioMovimientoDto;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author aocampo
 */
public class EnvioMovimientoDAO extends GenericDAO implements BaseEnvioMovimientoDAO {
    
    /**
     * Creates a new instance of EnvioMovimientoDAO 
     */
    public EnvioMovimientoDAO() {
    }
    
    public List getEnvioMovimientoByEnvio(EnvioDto dto) throws DAOException {
        List listEnvioMovimiento = new ArrayList();
        Connection con = null;
        PreparedStatement statement = null;
        ResultSet rs = null;
        try {
            con = getConnectionDB2();
            statement = con.prepareStatement("SELECT EM.CODIGO_BARRAS, EM.CODIGO_GESTION, EM.FECHA_WEB, EM.FECHA_IMAGEN, EM.FECHA_CARGA_IMAGEN, GE.NOMBRE_GESTION, EM.CODIGO_RESPONSABLE " +
                                             "FROM " + ConstantesGenerales.getInstance().SCHEMA + ".ENVIO_MOVIMIENTO EM " +
                                             "INNER JOIN " + ConstantesGenerales.getInstance().SCHEMA + ".GESTION_ENVIO GE ON EM.CODIGO_GESTION = GE.CODIGO_GESTION " +
                                             "WHERE EM.CODIGO_BARRAS = ? " +
                                             "ORDER BY EM.FECHA_WEB ASC");
            int indice = 0;
            statement.setObject(++indice, dto.getCodigoBarras());
            rs = statement.executeQuery();
            while (rs.next()) {
                indice = 0;
                EnvioMovimientoDto envioMovimientoDto = new EnvioMovimientoDto();
                envioMovimientoDto.setCodigoBarras(rs.getString(++indice));
                envioMovimientoDto.setCodigoGestion(rs.getString(++indice));
                envioMovimientoDto.setFechaWeb(rs.getDate(++indice));
                envioMovimientoDto.setFechaImagen(rs.getDate(++indice));
                envioMovimientoDto.setFechaCargaImagen(rs.getDate(++indice));
                envioMovimientoDto.setNombreGestion(rs.getString(++indice));
                envioMovimientoDto.setCodigoResponsable(rs.getString(++indice));
                listEnvioMovimiento.add(envioMovimientoDto);
            }
        } 
        catch (SQLException e) {
            throw new DAOException("EnvioMovimentoDAO:getEnvioMovimientoByEnvio: " + e.toString(), e);
        }
        finally {
            closeConnection(con, statement, rs);
        }
        return listEnvioMovimiento;
    }   
}